{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 360,
   "metadata": {},
   "outputs": [],
   "source": [
    "from __future__ import print_function, division\n",
    "from scipy.io import loadmat,wavfile\n",
    "from scipy.signal import decimate,butter\n",
    "import os\n",
    "import numpy as np\n",
    "import matlab.engine\n",
    "import matplotlib.pyplot as plt\n",
    "from heartnet_v1 import heartnet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 383,
   "metadata": {},
   "outputs": [],
   "source": [
    "target_fs=1000;\n",
    "nsamp=2500;\n",
    "# file_path='/media/taufiq/Data/heart_sound/Heart_Sound/Physionet/training/training-a/a0002.wav'\n",
    "file_path='/media/taufiq/Data/heart_sound/Heart_Sound/Physionet/training/training-a/a0007.wav'\n",
    "load_path='/media/taufiq/Data/heart_sound/models/fold1_noFIR 2018-02-02 09:52:02.463256/weights.0148-0.8902.hdf5'\n",
    "springer_path='/media/taufiq/Data/heart_sound/Heart_Sound/codes/cristhian.potes-204/'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Start Matlab engine. Add path of the custom matlab functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 384,
   "metadata": {},
   "outputs": [],
   "source": [
    "eng = matlab.engine.start_matlab()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 385,
   "metadata": {},
   "outputs": [],
   "source": [
    "eng.addpath('/media/taufiq/Data/heart_sound/Heart_Sound/codes/cristhian.potes-204/');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 386,
   "metadata": {},
   "outputs": [],
   "source": [
    "PCG,in_fs = eng.audioread(file_path,nargout=2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Pre-processing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 387,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fac9bb7bd50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "PCG = eng.resample(PCG,matlab.double([target_fs]),matlab.double([in_fs]))\n",
    "PCG = eng.butterworth_low_pass_filter(PCG,matlab.double([2]),matlab.double([400]),matlab.double([1000]))\n",
    "PCG = eng.butterworth_high_pass_filter(PCG,matlab.double([2]),matlab.double([25]),matlab.double([1000]))\n",
    "PCG = eng.schmidt_spike_removal(PCG,matlab.double([target_fs]))\n",
    "plt.plot(np.hstack(np.asarray(PCG)))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Segmentation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 396,
   "metadata": {},
   "outputs": [],
   "source": [
    "assigned_states = eng.runSpringerSegmentationAlgorithmpython(PCG,matlab.double([target_fs]))\n",
    "idx_states,last_idx=eng.get_states_python(assigned_states,nargout=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 397,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "35"
      ]
     },
     "execution_count": 397,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(idx_states)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Arranging the data for the keras model "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 398,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(35, 2500)"
      ]
     },
     "execution_count": 398,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ncc=len(idx_states)\n",
    "idx_states=np.hstack(np.asarray(idx_states))\n",
    "idx_states=np.reshape(idx_states,(ncc,4))\n",
    "idx_states=idx_states-1 ## -1 for python indexing compatibility \n",
    "PCG = np.hstack(np.asarray(PCG))\n",
    "x = np.zeros([ncc,nsamp],dtype=np.double)\n",
    "x.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 378,
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "negative dimensions are not allowed",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-378-e0a6984399d8>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      5\u001b[0m         \u001b[0mtmp\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mPCG\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0midx_states\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0midx_states\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      6\u001b[0m     \u001b[0mN\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnsamp\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mtmp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m     \u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcatenate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtmp\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzeros\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mN\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      8\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mValueError\u001b[0m: negative dimensions are not allowed"
     ]
    }
   ],
   "source": [
    "for row in range(ncc):\n",
    "    if row == ncc-1:\n",
    "        tmp = PCG[int(idx_states[row,0]):int(last_idx-1)] ## 2 to compensate for python indexing\n",
    "    else:\n",
    "        tmp=PCG[int(idx_states[row,0]):int(idx_states[row+1,0]-1)]\n",
    "    N = nsamp-tmp.shape[0]\n",
    "    x[row,:] = np.concatenate((tmp,np.zeros(N)))\n",
    "x = np.reshape(x,(x.shape[0],x.shape[1],1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 382,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(26, 4)"
      ]
     },
     "execution_count": 382,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "idx_states.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plot some random cardiac cycles to see whether it is okay or not"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 355,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fac9bb31610>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x[np.random.randint(1,x.shape[0])])\n",
    "# plt.plot(x[0])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 363,
   "metadata": {},
   "outputs": [
    {
     "ename": "AttributeError",
     "evalue": "'Model' object has no attribute 'png'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-363-93b604ae1a9f>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mheartnet\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mload_path\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'relu'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpng\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'heartnet.png'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m: 'Model' object has no attribute 'png'"
     ]
    }
   ],
   "source": [
    "model=heartnet(load_path,'relu')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 366,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 0.86171752]\n",
      " [ 0.91152841]\n",
      " [ 0.88414198]\n",
      " [ 0.91152841]\n",
      " [ 0.89746326]\n",
      " [ 0.90822756]\n",
      " [ 0.91152841]\n",
      " [ 0.91152841]\n",
      " [ 0.91152841]\n",
      " [ 0.91028672]\n",
      " [ 0.5232774 ]\n",
      " [ 0.91119534]\n",
      " [ 0.8904928 ]\n",
      " [ 0.87747145]\n",
      " [ 0.64460844]\n",
      " [ 0.91152841]\n",
      " [ 0.91152841]\n",
      " [ 0.91152841]\n",
      " [ 0.89550853]\n",
      " [ 0.91152841]\n",
      " [ 0.88139683]\n",
      " [ 0.82442862]\n",
      " [ 0.91152841]\n",
      " [ 0.91152841]\n",
      " [ 0.81646675]\n",
      " [ 0.7271716 ]]\n"
     ]
    }
   ],
   "source": [
    "y_pred=model.predict(x)\n",
    "print(y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
